SpringBoot多文件配置根据环境加载不同配置

您所在的位置:网站首页 spring boot修改端口号 SpringBoot多文件配置根据环境加载不同配置

SpringBoot多文件配置根据环境加载不同配置

2023-02-27 21:30| 来源: 网络整理| 查看: 265

各位看官可以关注博主个人博客,了解更多信息。 作者:Surpasser 链接地址:https://surpass.org.cn

SpringBoot多文件配置根据环境加载不同配置

在平时开发时,会发现公司的项目会不同的环境使用到不同的配置。如本地,测试,预发布,发布等环境,像数据库这些都要使用到不同的配置。如果只有一个配置文件,发布到不同环境的时候都要去修改一遍那简直就是遭罪,那么,如何实现SpringBoot根据需要去加载不同的配置文件?

项目构建

SpringBoot提供简单配置能够让我们进行不同配置文件的加载。

创建Maven项目

这里简单的常见一个用户类和控制器模仿一般的逻辑,获取用户的信息。

org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-weborg.springframeworkspring-webcom.google.code.gsongsoncom.alibabafastjson1.2.68

用户类

public class User { private String username; private String address; private String email; private String id; private String message; public User(String id) { this.username = "张三"; this.address = "亚历山大"; this.email = "[email protected]"; this.id = id; } }

控制器

@RestController public class Controller { @Value("${custom.value}") private String customValue; @RequestMapping(value = "/userInfo/{id}",method = RequestMethod.GET) public JSON getUserInfo(@PathVariable("id")String id){ User user = new User(id); user.setMessage(customValue); return JSONObject.parseObject(JSON.toJSONString(user)); } }

启动器

@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }

说明:这里利用Restful风格的请求方式,获取用户的个人信息,从配置文件中获取message复制给用户,然后以JSON的形式返回给页面。

这里来看配置配置文件

application.yml

server: port: 8000 #指定端口号 custom: value: This Is Application #自定义的value值(message)

利用postman请求发现没有问题,注意看属性message的值。

SpringBoot多文件配置根据环境加载不同配置 image 进行多文件配置

application-dev.yml

server: port: 8001 #指定端口号 custom: value: This Is Application-dev ##自定义的value值(message)

application-uat.yml

server: port: 8002 #指定端口号 custom: value: This Is Application-uat #自定义的value值(message)

application-pro.yml

server: port: 8003 #指定端口号 custom: value: This Is Application-pro #自定义的value值(message)

如果要启动使用不同的配置配置文件name就需要在application.yml中添加额外的配置

spring: profiles: active: uat

这样在启动的时候就使用的是uat的配置了,启动查看message信息。

SpringBoot多文件配置根据环境加载不同配置 image

我们可以看到message的信息就是application-uat.yml里面配置的,同时还能注意到当我们application.yml和application-uat.yml进行相同的配置是,SpringBoot会优先使用指定配置profiles的值。如果没有才会去application.yml里面找。

补充 Maven打包

那么说到了SpringBoot加载不同的配置文件启动,那么不妨说一下Maven根据不同环境用不同的配置文件打包。

在pom.xml中添加配置:

devdevuatuattrueproprosrc/main/resourcestrueapplication.ymlapplication-dev.ymlapplication-pro.ymlapplication-uat.ymlsrc/main/resourcestrueapplication-${env}.ymlapplication.yml

配置完成后依次执行命令mvn clean ; mvn package进行打包,maven会根据你的配置去打包相应的文件,打包完成后如图包含的配置文件。

[图片上传失败…(image-5331af-1599820046417)]

使用postman去请求得到的结果,如图:

SpringBoot多文件配置根据环境加载不同配置 image


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3